Cómo trabajar con strings en Python: búsqueda, reemplazo y concatenación

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Trabajo con strings en Python: guía completa

Fundamentos de las cadenas en Python

Los strings en Python son un tipo de dato fundamental para trabajar con información textual. Comprender cómo manejarlos es esencial para una programación eficiente.

Strings como objetos de tipo str

En Python, los strings son objetos del tipo incorporado str. Representan secuencias de caracteres Unicode. Cada string cuenta con múltiples métodos integrados para procesar texto. Puedes acceder a caracteres individuales mediante índices y realizar operaciones de comparación y ordenamiento.

texto = "Python"
print(type(texto))  # <class 'str'>
print(len(texto))   # 6

Principio de inmutabilidad de los strings

Los strings en Python son objetos inmutables. Esto significa que cualquier operación de transformación crea un nuevo string, dejando el original sin cambios. Este principio garantiza la seguridad de los datos y la previsibilidad del código.

original = "hola"
modificado = original.upper()
print(original)   # 'hola' - no cambia
print(modificado) # 'HOLA' - nuevo string

Formas de crear strings

Python ofrece varias formas de crear strings:

  • Comillas simples para cadenas sencillas
  • Comillas dobles para cadenas con apóstrofes
  • Comillas triples para texto multilínea
  • Raw strings para evitar escapes de caracteres especiales
simple = 'cadena simple'
doble = "cadena con 'apóstrofe'"
multilinea = """Primera línea
Segunda línea
Tercera línea"""
raw = r"ruta\al\archivo"

Indexación y trabajo con slices

Acceso a caracteres del string

Cada carácter en un string tiene su propio índice. La indexación comienza en cero. Python admite tanto indexación positiva como negativa.

texto = "Python"
print(texto[0])   # 'P' - primer carácter
print(texto[5])   # 'n' - último carácter
print(texto[-1])  # 'n' - último con índice negativo
print(texto[-6])  # 'P' - primero con índice negativo

Creación de slices (rebanadas) de strings

Los slices permiten extraer subcadenas del string original. Sintaxis del slice: cadena[inicio:fin:paso]. El índice inicial se incluye, el final se excluye.

texto = "Python Programming"
print(texto[1:4])    # 'yth'
print(texto[:6])     # 'Python'
print(texto[7:])     # 'Programming'
print(texto[::2])    # 'Pto rgamn' - cada segundo carácter
print(texto[::-1])   # 'gnimmargorP nohtyP' - inversión del string

Aplicación práctica de la indexación negativa

La indexación negativa simplifica el trabajo con el final del string. Es especialmente útil al procesar archivos y datos de longitud variable.

archivo = "documento.pdf"
extension = archivo[-4:]  # '.pdf'
nombre = archivo[:-4]     # 'documento'

Métodos de búsqueda en strings

Métodos básicos de búsqueda de subcadenas

El método find() devuelve el índice de la primera aparición de una subcadena. Si no se encuentra, retorna -1. El método rfind() busca desde el final del string.

texto = "banana programación"
print(texto.find("ana"))     # 1
print(texto.find("python"))  # -1 (no encontrado)
print(texto.rfind("ana"))    # 3
print(texto.find("a", 2))    # 3 (búsqueda desde la posición 2)

Métodos estrictos de búsqueda con excepciones

Los métodos index() y rindex() funcionan de manera similar a find(), pero lanzan una excepción ValueError si la subcadena no se encuentra.

texto = "banana"
print(texto.index("n"))      # 2
# print(texto.index("z"))    # ValueError: substring not found

Blogs

Book Recommendations