Guía Última de Python
Fundamentos
┣ Variables: x = 5
┣ Imprimir: imprimir("¡Hola, Mundo!")
┣ Comments:
┣ Línea única: # Comentario
'''Comentario'''
Tipos de datos
┣ Primitive:
┣ String: "Hello"
Número entero: 42
┣ Float: 3.14
┗ Boolean: True
┣ Collections:
┣ List: [1, 2, 3]
(1, 2, 3)
┣ Set: {1, 2, 3}
┗ Dictionary: {"key": "value"}
Operadores
┣ Arithmetic: +, -, *, /, //, %, **
┣ Comparison: ==, !=, <, >, <=, >=
┣ Logical: and, or, not
┣ Membership: in, not in
┗ Identity: is, is not
Condicionales
┣ Si: si x > y:
┣ Elif: elif x < y:
┗ En otro caso: en otro caso:
Bucles
┣ Para: para x en rango(5):
┣ Mientras: mientras x < 5:
┣ Break: break
┗ Continue: continue
Funciones
┣ Definiendo: def mi_funcion():
┣ Llamando: my_function()
┣ Default parameters: def func(x, y=0):
┗ Argumentos de longitud variable: def func(*args, **kwargs):
Clases y Objetos
┣ Definición de clase: clase MyClass:
┣ Constructor: def __init__(self):
┣ Instance methods: def method(self):
┣ Variables de clase: class_var = 0
┣ Instanciación de objeto: my_object = MyClass()
┣ Herencia: clase DerivedClass(BaseClass):
┗ Sobrescritura de método: def método(self):
Manejo de Errores
┣ Try: try:
┣ Excepto: excepto Excepción como e:
┣ Lanzar: lanzar ValueError("Mensaje de error")
┗ Finalmente: finalmente:
Importando bibliotecas
┣ Importar: importar numpy
┣ Alias: importar numpy como np
┗ Importación específica: de math importar pi
Entrada/Salida de Archivos
┣ Abrir: con open("[Link]", "r") como archivo:
┣ leer: [Link]()
┣ con open("fi[Link]", "w") as file:
┣ Anexar: con open("[Link]", "a") como archivo:
Compresiones de listas
┣ Sintaxis: [expresión para elemento en iterable si condición]
Funciones Lambda
┣ Sintaxis: lambda argumentos: expresión
Iteradores y Generadores
┣ Iterator: iter(obj)
┣ Siguiente artículo: siguiente(iterador)
┣ Función generadora: def mi_generador(): yield valor
┗ Expresión generadora: (expresión para elemento en iterable si condición)
Gestores de contexto
┣ Definiendo: clase MyContext:
┣ def __enter__(self):
┣ Método de salida: def __exit__(self, exc_type, exc_value, traceback):
┗ Usando: con MyContext() como mi_context:
Funciones incorporadas
┣ len(obj) → Longitud del objeto
┣ sum(iterable[, start]) → Suma de elementos
┣ max(iterable[, key]) → Elemento máximo
┣ min(iterable[, key]) → Elemento mínimo
┣ sorted(iterable[, key][, reverse]) → Lista ordenada
┣ rango(parada[, inicio][, paso]) → Secuencia de números
┣ zip(*iterables) → Iterador de tuplas
┣ map(función, iterable) → Aplicar función a todos los elementos
┣ filter(función, iterable) → Filtrar elementos por función
┗ isinstance(obj, classinfo) → Verificar la clase del objeto
Métodos de Cadena
┣ lower() → Lowercase
┣ upper() → Uppercase
┣ strip([chars]) → Eliminar caracteres al principio/final
┣ split([sep][, maxsplit]) → Dividir por separador
┣ replace(old, new[, count]) → Replace substring
┣ find(sub[, start][, end]) → Encontrar índice de subcadena
┗ formato(*args, **kwargs) → Formato de cadena
Listar Métodos
┣ append(item) → Agregar elemento al final
┣ extender(iterable) → Añadir elementos de iterable
┣ insertar(índice, elemento) → Insertar elemento en el índice
┣ remove(item) → Eliminar primera ocurrencia
┣ pop([índice]) → Eliminar y devolver elemento
┣ índice(item[, inicio][, fin]) → Encontrar índice del elemento
┣ count(item) → Count occurrences
┣ sortear([clave][, reverso]) → Ordenar lista
┗ reverse() → Reverse list
Métodos de diccionario
┣ keys() → Ver lista de claves
┣ valores() → Ver lista de valores
┣ items() → Ver pares clave-valor
┣ get(key[, default]) → Get value for key
┣ update([otro]) → Actualizar diccionario
┣ pop(clave[, predeterminado]) → Eliminar y devolver valor
┗ clear() → Eliminar todos los elementos
Métodos de Conjunto
┣ agregar(elem) → Agregar elemento
┣ actualizar(iterable) → Agregar elementos del iterable
┣ descartar(elemento) → Eliminar elemento si está presente
┣ remove(item) → Eliminar elemento o generar KeyError
┣ pop() → Eliminar y devolver elemento
┣ clear() → Eliminar todos los elementos
┣ unión(*otros) → Unión de conjuntos
┣ intersección(*otros) → Intersección de conjuntos
┣ diferencia(*otros) → Diferencia de conjuntos
┣ issubset(other) → Comprobar si es un subconjunto
┗ issuperset(other) → Comprobar si es un superconjunto
Expresiones regulares
┣ import re
┣ [Link](patrón, cadena)
┣ [Link](patrón, cadena)
┣ re.findall(patrón, cadena)
┣ [Link](patrón, repl, cadena)
┗ Patrones comunes:
┣ \d: Dígito
┣ \w: Carácter de palabra
┣ \s: Espacio en blanco
┣ .: Cualquier carácter (excepto salto de línea)
┣ ^: Inicio de cadena
┣ $: Fin de la cadena
Zero o más repeticiones
┣ +: Una o más repeticiones
Zero o una repetición
┣ {n}: Exactamente n repeticiones
┣ {n,}: Al menos n repeticiones
Como máximo m repeticiones
┣ {n,m}: Entre n y m repeticiones (inclusive)
Decoradores
┣ Definiendo: def mi_decorador(func):
┗ Aplicando: @mi_decorador
Módulos y Paquetes
┣ Creando un módulo: Guardar como archivo .py
┣ Importando un módulo: import my_module
┣ Crear un paquete: Crear un directorio con __init__.py
┗ Importando desde un paquete: desde my_package importar my_module
Entornos Virtuales
┣ Creando: python -m venv myenv
┣ Activando:
┣ Windows: myenv\Scripts\activate
┣ Unix/Mac: source myenv/bin/activate
┗ Deactivating: deactivate
Gestión de Paquetes (pip)
┣ Instalar: pip install nombre_del_paquete
┣ Desinstalar: pip uninstall nombre_del_paquete
┣ Actualizar: pip install --upgrade nombre_del_paquete
┣ Lista de paquetes instalados: pip list
┗ Mostrar detalles del paquete: pip show nombre_del_paquete
Fecha y Hora
┣ importar datetime
┣ Fecha y hora actuales: [Link]()
┣ Objeto de fecha: [Link](año, mes, día)
┣ Objeto de tiempo: [Link](hora, minuto, segundo, microsegundo)
┣ Formato: [Link](formato)
┣ Parse: [Link](fecha_cadena, formato)
┗ Códigos de formato comunes: %Y, %m, %d, %H, %M, %S
JSON
┣ importar json
┣ JSON a Python: [Link](json_string)
┣ Python a JSON: [Link](obj)
┣ Leer del archivo: [Link](archivo)
┗ Escribir en el archivo: [Link](obj, archivo)
Hilos
┣ importar subprocesos
┣ Crea un hilo: t = [Link](target=function, args=(arg1, arg2))
┣ Iniciar un hilo: [Link]()
┗ Espera a que el hilo termine: [Link]()
Multiprocesamiento
┣ importar multiprocesamiento
┣ Crea un proceso: p = [Link](target=función, args=(arg1,
arg2))
┣ Iniciar un proceso: [Link]()
┗ Wait for process to finish: [Link]()
Trabajando con Bases de Datos (SQLite)
┣ importar sqlite3
┣ Conectar a una base de datos: conn = [Link]('[Link]')
┣ Objeto cursor: cursor = [Link]()
┣ Ejecutar comandos SQL: [Link]("CREAR TABLA my_table (id ENTERO,")
nombre TEXTO")
┣ Confirmar cambios: [Link]()
┣ Obtener resultados: [Link]()
┗ Cierra la conexión: [Link]()
Raspado web (BeautifulSoup)
┣ de bs4 importar BeautifulSoup
┣ Crea un objeto BeautifulSoup: sopa = BeautifulSoup(html_content,
'[Link]')
┣ Encuentra elementos por etiqueta: soup.find_all('nombre_etiqueta')
┣ Acceder a los atributos del elemento: elemento['nombre_del_atributo']
┗ Obtener texto del elemento: [Link]
Solicitudes Web (Requests)
┣ importar solicitudes
┣ Solicitud GET: respuesta = [Link](url)
┣ Solicitud POST: respuesta = [Link](url, data=payload)
┣ Response content: [Link]
┣ JSON response: [Link]()
┗ Código de estado de respuesta: response.status_code
Desarrollo Web (Flask)
┣ de flask import Flask, render_template, request, redirect, url_for
┣ Crea una aplicación Flask: app = Flask(__name__)
┣ Definir una ruta: @[Link]('/ruta', methods=['GET', 'POST'])
┣ Ejecuta la aplicación: [Link](debug=True)
┣ Return a response: return "Hello, World!"
┣ Renderizar una plantilla: return render_template('[Link]', variable=valor)
┣ Datos de solicitud de acceso: [Link]['input_name']
┗ Redirigir a otra ruta: return redirect(url_for('función_ruta'))
Bibliotecas de Ciencia de Datos
┣ NumPy: importar numpy como np
┣ pandas: importar pandas como pd
┣ Matplotlib: importar [Link] como plt
┣ seaborn: importar seaborn como sns
┣ scikit-learn: importar sklearn
┣ TensorFlow: importar tensorflow como tf
┣ Keras: de tensorflow importar keras
┣ PyTorch: importar torch
Argumentos de Línea de Comandos (argparse)
┣ importar argparse
┣ Crea un ArgumentParser: parser =
[Link](description='Descripción de tu programa')
┣ Agregar argumentos: parser.add_argument('--arg_name', type=str,
help='Description of the argument')
┣ Analizar argumentos: args = parser.parse_args()
┗ Acceder a los valores de argumento: args.arg_name
Registro
┣ importar registro
┣ Configuración básica: [Link](level=[Link],
%(asctime)s - %(levelname)s - %(message)s
┣ Logging levels: [Link](), [Link](), [Link](),
[Link](), [Link]()
Variables de Entorno
┣ importar os
┣ Obtén una variable de entorno: [Link]('VAR_NAME')
┗ Establecer una variable de entorno: [Link]['VAR_NAME'] = 'valor'
Sugerencias de tipo
┣ de typing import List, Dict, Tuple, Optional, Union, Any
┣ Sugerencias de tipo de función: def mi_función(param: int, param_opcional:
Optional[str] = None) -> List[int]:
┗ Variable type hints: my_variable: Dict[str, int] = {}