Caracteres de Escape en Cadenas de Texto
En Python, los caracteres de escape permiten insertar caracteres especiales o de control dentro de una cadena de texto utilizando la barra invertida (\). Esta funcionalidad es esencial para incluir comillas internas, saltos de línea, tabulaciones o representar la propia barra invertida.
Los caracteres de escape más comunes incluyen:
\n: Salto de línea.\t: Tabulación horizontal.\r: Retorno de carro.\\: Barra invertida literal.\'y\": Comillas simples y dobles literales.
Uso práctico de caracteres de escape
# Salto de línea y tabulación
mensaje = "Informe de ventas:\n\tQ1: $5000\n\tQ2: $7500"
print(mensaje)
# Inclusión de comillas y barras invertidas en rutas de Windows
ruta_archivo = "C:\\Usuarios\\Admin\\Documentos\\reporte.txt"
cita = "El autor afirmó: \"El código es poesía\"."
print(ruta_archivo)
print(cita)
Formateo de Cadenas
Python ofrece múltiples mecanismos para insertar variables y expresiones dentro de cadenas de texto. Aunque el operador % es el método clásico, las f-strings y el método .format() son los enfoques modernos y recomendados.
Operador de formato clásico (%)
producto = "Monitor"
unidades = 15
precio_unitario = 249.99
# %s para cadenas, %d para enteros, %f para flotantes
resumen = "Producto: %s | Stock: %d | Precio: %8.2f USD" % (producto, unidades, precio_unitario)
print(resumen)
F-strings (Cadenas formateadas literalse)
Introducidas en Python 3.6, las f-strings permiten evaluar expresiones directamente dentro de la cadena, ofreciendo una sintaxis más limpia y un mejor rendimiento.
cliente = "Empresa Tech"
factura = 1045
total = 15320.50
# Uso de f-strings con formato numérico y cálculos inline
detalle = f"Cliente: {cliente} - Factura #{factura} - Total con IVA: {total * 1.16:,.2f}"
print(detalle)
Indexación y Segmentación (Slicing)
Las cadenas en Python son secuencias inmutables, lo que significa que sus elementos pueden acccederse mediante índices. La indexación positiva comienza en 0, mientras que la negativa comienza en -1 (desde el final).
Extracción de caracteres y subcadenas
lenguaje = "JavaScript"
# Indexación
print(lenguaje[0]) # 'J' (Primer carácter)
print(lenguaje[-1]) # 't' (Último carácter)
# Segmentación [inicio:fin:paso]
print(lenguaje[0:4]) # 'Java' (Índices 0, 1, 2, 3)
print(lenguaje[4:]) # 'Script' (Desde el índice 4 hasta el final)
print(lenguaje[::2]) # 'JvSrp' (Caracteres en índices pares)
print(lenguaje[::-1]) # 'tpircSavaJ' (Inversión de la cadena)
Concatenación, Longitud y Membresía
La unión de cadenas se realiza mediante el operador +. Para medir la extensión de una cadena se utiliza la función integrada len(), y para verificar la existencia de subcadenas se emplea el operador in.
# Concatenación y longitud
nombre = "Ada"
apellido = "Lovelace"
nombre_completo = nombre + " " + apellido
print(f"Longitud del nombre completo: {len(nombre_completo)} caracteres")
# Operador de membresía
frase = "La inteligencia artificial está transformando el mundo"
print("artificial" in frase) # True
print("cuántica" in frase) # False
Entrada y Salida de Datos
La interacción básica con el usuario en la terminal se gestiona mediante input() para capturar datos (siempre como cadenas) y print() para mostrarlos.
# Captura de datos
usuario = input("Ingrese su nombre de usuario: ")
edad_texto = input("Ingrese su edad: ")
# Salida formateada
print(f"Bienvenido al sistema, {usuario}.")
print("Edad registrada:", edad_texto)
Métodos Integrados para Cadenas
Python proporciona una amplia biblioteca de métodos nativos para manipular, buscar y validar cadenas de texto sin necesidad de importar módulos externos.
| Método | Descripción | Método | Decsripción |
|---|---|---|---|
upper() / lower() |
Convierte a mayúsculas / minúsculas | strip() |
Elimina espacios en blanco en los extremos |
capitalize() |
Mayúscula en la primera letra | split() |
Divide la cadena en una lista |
title() |
Mayúscula en cada palabra | join() |
Une una lista de cadenas |
startswith() |
Verifica el prefijo | replace() |
Sustituye subcadenas |
endswith() |
Verifica el sufijo | find() / index() |
Busca la posición de una subcadena |
isdigit() |
Valida si son solo dígitos | count() |
Cuenta ocurrencias de una subcadena |
Aplicación de métodos nativos
texto_base = " análisis de datos con Python "
# Limpieza y transformación
texto_limpio = texto_base.strip()
print(texto_limpio.title()) # 'Análisis De Datos Con Python'
# Validación y búsqueda
codigo = "PY-8842-X"
print(codigo.startswith("PY")) # True
print(codigo.find("8842")) # 3
# División y unión
csv_linea = "id,timestamp,valor"
columnas = csv_linea.split(",")
print(columnas) # ['id', 'timestamp', 'valor']
nueva_linea = " | ".join(columnas)
print(nueva_linea) # 'id | timestamp | valor'
# Reemplazo y conteo
log = "ERROR: Conexión fallida. ERROR: Timeout. INFO: Reiniciando."
print(log.count("ERROR")) # 2
print(log.replace("ERROR", "WARNING", 1)) # Reemplaza solo la primera ocurrencia
Conversión de Tipos (Casting)
Dado que input() siempre retorna cadenas, es fundamental convertir los datos a tipos numéricos para realizar operaciones matemáticas. Python requiere conversiones explícitas utilizando int(), float() y str().
# Conversión de entero a cadena
puntuacion = 9500
mensaje_puntaje = "Tu puntuación es: " + str(puntuacion)
print(mensaje_puntaje)
# Conversión de cadena a numérico
precio_texto = "149.95"
# int(precio_texto) lanzaría un ValueError, por lo que se usa float primero
precio_float = float(precio_texto)
precio_entero = int(precio_float) # Trunca los decimales
print(f"Precio original: {precio_float}, Precio truncado: {precio_entero}")