Guía de Referencia Rápida de Python
Generalidades | Tipos de datos | Operaciones
Generalidades
- Una declaración debe estar toda en una sola línea. Para romper una declaración en múltiples líneas debe usarse ‘\’ al final de cada una de ellas (salvo la última).
- Excepción: siempre se puede romper dentro de cualquier par (), [] o {}, o en una cadena delimitada por triple comillas.
- En una línea pueden aparecer más de una declaración separándolas por ‘;’.
- Los comentarios comienzan con ‘#’ y continúan hasta el final de la línea.
- 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.
Tipos de datos
Los tipos de datos en Python se dividen en mutables, si su contenido puede cambiarse, e inmutables, si su contenido no puede cambiarse.
Números
- Enteros (int): Ej:1234, −123456789.
- Reales o números en coma flotante ( float ): Ej:0.001, 10., 3.14e−10.
- Complejos (complex): Ej:2+3j, .5−1.4j, 1j.
- Todos los tipos de números son datos inmutables.
Constantes lógicas (boolenas)
- True (verdadero).
- False (falso).
- Las constantes lógicas son datos inmutables.
Secuencias
- Cadenas ( string): delimitadas por comillas simples (‘Hola’), dobles ("Hola") o triples ( ‘‘‘ Hola’’ ’, """Hola""").
- Tuplas (tuple): delimitadas por paréntesis y sus elementos separados por comas.Ej: ((), (1,) , (1, 2, 3)).
- Listas ( list ): delimitadas por corchetes y sus elementos separados por comas.Ej: ( [] , [1] , [1, 2, 3]).
- Las cadenas y tuplas son datos inmutables. Las listas son datos mutables.
Diccionarios (dict)
- Pares clave : valores separados por coma y delimitados por llaves: Ej: ( {1:‘ primero’, ‘segundo’:2}).
- Las claves deben ser datos inmutables.
- Los diccionarios son datos mutables.
Conjuntos
- Los conjuntos son colecciones no ordenadas de elementos no duplicados.
- Los elementos de un conjunto deben ser datos inmutables.
- set (secuencia) crea un conjunto mutable con los elementos de la secuencia especificada, descartando las repeticiones.
- frozenset (secuencia)crea un conjunto inmutable con los elementos de la secuencia especificada, descartando las repeticiones.
Otros tipos de datos
- La constante None es el dato nulo.
Operaciones sobre los tipos de datos básicos
Operadores de comparación
Operador | Significado |
< | Menor estricto que |
<= | Menor o igual que |
> | Mayor estricto que |
>= | Mayor o igual que |
== | Igual que |
!= | Distinto que |
is | Idéntico que |
is not | No idéntico que |
Estos operadores están definidos entre cualquier tipo de datos.
Operadores lógicos
Declaración | Evalúa a |
bool(expr) | True si expr es verdadero.False si expr es falso |
not expr | True si expr es verdadero.Flase si es falso |
expr1 or expr2 | False si expr1 y expr2 son falsos.True en caso contrario. |
expr1 and expr2 | True si expr1 y expr2 son verdaderos.False en caso contrario. |
- La constante None, los ceros numéricos, las secuencias,diccionarios y conjuntos vacios se consideran falsos.
- El resto de datos se consideran verdaderos.
- Los operadores or y and sólo evaluan expr2 en caso necesario.
Operadores numéricos
Operación | Resultado |
abs(x) | Valor absoluto de x |
int(x) | x convertido a entero |
float(x) | x convertido a real. |
complex(x) | x convertido a complejo |
-x | x negado |
x+y | Suma de x e y |
x-y | Resta de x e y |
x*y | Producto de x e y |
x/y | División de x e y (cociente de la división en el caso de x e y enteros) |
x%y | Resto de la división de x e y |
divmod(x,y) | La tupla (x/y,x%y) |
x**y | x elevado a y |
Operadores de asignación
Operador | Resultado |
a=b | Asigna b a a |
a+=b | Igual que a=a+b |
a-=b | Igual que a=a-b |
a*=b | Igual que a=a*b |
a/=b | Igual que a=a/b |
a%=b | Igual que a=a%b |
a**=b | Igual que a=a**b |
- El operador de asignación puede desempaquetar cadenas, tuplas y listas: (a,b)=range(2) es lo mismo que a=0;b=1
- x,y=y,x intercambia los valores de x e y
- Es posible realizar asignaciones múltiples: a=b=c=0 es lo mismo que a=0; b=0; c=0
Operaciones sobre secuencias
Operación | Resultado |
x in s | True si un elemento de s es igual a x.False en caso contrario. |
x not in s | False si un elemento de s es igual a x.True en caso contrario. |
s1+s2 | Concatenación de s1 y s2 |
s * n, n * s | n copias de s concatenadas |
s[i] | i-ésimo elemento de s |
s[i:j:salto] | Porción de s con los elementos de los índices de la secuencia desde i (incluido)hasta j (excluido) con la diferencia salto. |
len(s) | Longuitud de s |
min(s) | Menor elemento de s |
max(x) | Mayor elemento de s |
- 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.
Operaciones sobre cadenas
Operación | Resultado |
s.capitalize() | Copia de s con sólo el primer caracter en mayúsculas |
s.count(sub,ini.fin) | Número de ocurrencias de la subcadena sub en el intervalo s [ini:fin] |
s.find(sub,ini,fin) | El menor índice donde se encuentra sub como subcadena de s[ini:fin], -1 si no se encuentra. |
s.index(sub,ini,fin) | Igual que s.find(sub,ini,fin) pero provoca un error si sub no se encuentra |
s.isalnum() | True si todos los caracteres de s son alfanuméricos.False en caso contrario. |
s.isalpha() | True si todos los caracteres de s son alfabéticos.False en caso contrario. |
s.isdigit() | True si todos los caracteres de s son dígitos.False en caso contrario. |
s.islower() | True si todos los caracteres de s están en minúsculas.False en caso contrario. |
s.isupper() | True si todos los caracteres de s están en mayúsculas. |
s.join(sec) | Concatenanción de las cadenas contenidas en sec separadas por s. |
s.lower() | Copia de s con todos los caracteres de s en minúsculas. |
s.replace(vie,nue,max) | Copia de s con todas (o max) ocurrencias de la subcadena vie reemplazadas por nue. |
s . rfind (sub, ini , fin ) | El mayor índice donde se encuentra sub como subcadena de s [ ini : fin ], −1 si no se encuentra |
s .rindex(sub, ini , fin ) | Igual que s . rfind (sub, ini , fin ), pero provoca un error si la subcadena no se encuentra. |
s.split(sep,max) | La lista de todas (o max) palabras obtenidas de s usando sep como cadena delimitadora |
s.rsplit(sep,max) | Igual que s . split (sep,max), pero desde el final de la cadena |
s.swapcase() | Copia de s transformando mayúsculas en minúsculas y viceversa |
s.upper() | Copia de s con todos los caracteres en mayúsculas |
- El valor por defecto de ini es 0, y el valor por defecto de fin es len(s).
- Los métodos isalnum, isalpha,isdigite isspace devuelven False si la cadena no contiene al menos un carácter. Los métodosislowere 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.
Operaciones sobre listas
Operación | Resultado |
s[i]=x | El i-ésimo elemento de s es reemplazado por x |
s[i:j:salto]=t | La porción de s con los elementos en las posiciones de la lista desde i (incluido) hasta j (excluido) ,con diferencia salto, reemplazada por t |
del s[i] | Elimina el i-ésimo elemento de s |
del s[i:j:salto] | Lo mismo que s [ i : j : salto ]=[] |
s.append(x) | Lo mismo que s [ len(s ): len(s)]=[x] |
s.extend(x) | Lo mismo que s [ len(s ): len(s)]=x |
s.count(x) | El cardinal del conjunto {i : s [ i]==x } |
s .index(x, ini , fin) | El menor i tal que ini ≤ i < fin y s [ i]==x |
s . insert ( i ,x) | Lo mismo que s [ i : i ]=[x] |
s .remove(x) | Lo mismo que del s [ s .index(x)] |
s .pop(i) | Lo mismo que x=s[i ];del s [ i ];return x |
s . reverse () | Invierte el orden de los elementos de s |
s . sort () | Ordena los elementos de s |
- Los métodos reverse y sort modifican la lista. No devuelven el resultado para poner de manifiesto este efecto lateral.
- El argumento del método pop toma −1 como valor por defecto, por lo que por defecto el último elemento de la lista es eliminado y devuelto.
Operaciones sobre diccionarios
Operación | Resultado |
len(d) | El número de elementos 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, False en caso contrario |
kind | Lo mismo que d.has_key(k) |
d.items() | La lista de los pares (clave , valor) de d |
d.keys() | La lista de las claves de d |
d.values() | La lista de los valores de d |
Operaciones sobre conjuntos
Operación | Resultado |
len(s) | Longuitud o tamaño del conjunto s |
elt in s | True si elt pertenece a s, False en caso contrario |
elt not in s | True si elt no pertenece a s, False en caso contrario |
s1.issubset(s2) | True si todo elemento de s1 pertenece a s2,False en caso contrario |
s1.issuperset(s2) | True si todo elemento de s2 pertenece a s1, False en caso contrario |
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)
s1 & s2 |
Nuevo conjunto con los elementos comunes a s1 y s2 (Intersección) |
s1.union(s2)
s1 | s2 |
Nuevo conjunto con los elementos de s1 y de s2 (Unión) |
s1.difference(s2)
s1 - s2 |
Nuevo conjunto con los elementos que pertenecen a s1, pero no a s2 |
s1.symmetric_difference(s2)
s1 ^s2 |
Nuevo conjunto con los elementos que pertenecen a s1 o a s2, pero no a ambos |
s.copy() | Nuevo conjunto copia del conjunto s |
s.update(sec) | Añade los elementos de sec al conjunto s |
Declaraciones
Declaración | Resultado |
pass | Declaración nula |
del nombre | Borra el dato llamado nombre |
global nombre | Estable como global la variable nombre |
print s1,...,sN, | Escribe en pantalla representaciones de s1 ... sN separadas por un espacio en blanco |
print s1 ,...,sN | Escribe en pantalla representaciones de s1, ..., sN separadas por un espacio en blanco y terminando con un salto de línea |
raise TipoError | Provoca un error de tipo TipoError |
Declaraciones de control de flujo
Declaración | Significado |
if condicion:
|
Condicional simple |
if condicion: acciones1 else: acciones2 |
Condicional if..else |
if condicion1: acciones1 elif condicion2: acciones2 else: acciones3 |
Condicional múltiple (if / else anidados) |
while consicion: acciones |
Bucle while (mientras) |
for elt in secuencia: acciones |
Bucle for (para desde) |
break | Interrumpe el bucle |
continue | Continua el bucle |
Definición de funciones
def nombre_funcion ( parametros ) : ‘documentacion’ acciones return resultado
parametros es una sucesión de identificadores separados por comas.
def nula ( x , y , z ) :
‘ Funcion que no h a c e nada ’
p a s s
Los argumentos se pasan a la función por posición o por nombre.
n u l a ( 1 , z =3 , 2 ) hace que los parámetros tomen los siguientes valores: x=1, y=2, z=3
La sucesión de parámetros puede contener uno de la forma *nombre, en cuyo caso se le asignará la tupla de todos los argumentos proporcionados por posición que no correspondan a otro parámetro.
defn u l a ( x , y , z ,∗ a r g s ) :
‘ Funcion que no h a c e nada ’
p a s s n u l a ( 1 , 2 , 3 , 4 , 5 , 6 ) hace que los parámetros tomen los siguientes valores: x=1, y=2, z=3, args=(4, 5, 6) La sucesión de parámetros puede contener uno de la forma **nombre, en cuyo caso se le asignará un diccionario con todos los argumentos proporcionados por nombre que no correspondan a otro parámetro. defn u l a ( x , y , z ,∗∗ kwargs ) : ‘ Funcion que no h a c e nada ’ p a s s n u l a ( 1 , z =3 , 2 , u=4 , v=5 , w=6) hace que los parámetros tomen los siguientes valores: