Strings: métodos, slicing y formato en Python

Actualizado el: 20/08/2026
Tempo de leitura: 3 minutos
Manipulação e formatação de strings em Python

Las strings en Python representan texto. Nombres, mensajes, rutas, URLs, descripciones, comandos y datos escritos por usuarios suelen almacenarse como cadenas.

Python facilita el trabajo básico con texto, pero también ofrece herramientas para slicing, búsqueda, reemplazo, validación, formato, Unicode y codificación. Esta guía reúne los patrones más útiles para programas reales.

Crear cadenas

Utiliza comillas simples o dobles:

first_name = "Olivia"
message = 'Python es legible'

Las comillas triples permiten varias líneas:

description = """Este producto incluye:
- un teclado
- un ratón
- una funda"""

Elige un estilo consistente. Las comillas dobles resultan cómodas cuando el texto contiene apóstrofos; las simples evitan escapar algunas comillas internas.

Las strings son secuencias

Cada carácter tiene una posición que comienza en cero:

language = "Python"

print(language[0])
print(language[1])
print(language[-1])

Los índices negativos cuentan desde el final. Una posición inexistente genera IndexError.

La documentación oficial del tipo str describe el comportamiento de las secuencias de texto.

Slicing de strings

La sintaxis [inicio:fin:paso] extrae una parte:

text = "Programación"

print(text[0:7])
print(text[7:])
print(text[:4])
print(text[::2])
print(text[::-1])

La posición final queda excluida. El slicing también funciona con listas y tuplas. Consulta la guía de slicing en Python.

Inmutabilidad

No puedes reemplazar un carácter directamente:

word = "cat"
# word[0] = "b"  # TypeError

Debes construir una cadena nueva:

word = "b" + word[1:]
print(word)

Los métodos de string también devuelven valores nuevos. Asigna el resultado si deseas conservarlo.

Cambiar mayúsculas y minúsculas

name = "  aLEX JOHNSON  "

print(name.lower())
print(name.upper())
print(name.title())
print(name.capitalize())
print(name.strip())

Para comparaciones sin distinguir mayúsculas, casefold() es más completo que lower() en Unicode:

answer = input("¿Continuar? ").strip().casefold()

if answer in {"sí", "si"}:
    print("Continuando")

La guía de input() en Python explica cómo normalizar y validar texto recibido.

Buscar dentro de una cadena

El operador in comprueba la existencia de una subcadena:

email = "user@example.com"

print("@" in email)
print("admin" not in email)

find() devuelve la primera posición o -1:

sentence = "Python facilita la automatización"
position = sentence.find("automatización")
print(position)

index() genera ValueError si no encuentra el texto. count() cuenta ocurrencias:

print("banana".count("a"))

Reemplazar texto

template = "Hola, NOMBRE"
message = template.replace("NOMBRE", "Ava")
print(message)

Puedes limitar el número de sustituciones:

text = "uno uno uno"
print(text.replace("uno", "dos", 1))

replace() devuelve una cadena nueva y no modifica la original.

Dividir cadenas

split() transforma texto en una lista:

line = "Python,JavaScript,Go"
languages = line.split(",")
print(languages)

Sin argumento, divide grupos de espacios:

words = "  código   limpio y legible  ".split()
print(words)

splitlines() separa texto con varias líneas:

lines = "primera\nsegunda\ntercera".splitlines()

Unir cadenas

join() combina un iterable de strings:

words = ["aprende", "Python", "hoy"]
sentence = " ".join(words)
print(sentence)

Para muchas piezas es más claro que sumar strings repetidamente:

parts = []

for number in range(1, 6):
    parts.append(str(number))

result = ", ".join(parts)
print(result)

La guía de bucles for en Python muestra cómo recorrer y transformar secuencias.

Validar el contenido

print("Python3".isalnum())
print("Python".isalpha())
print("12345".isdigit())
print("   ".isspace())
print("hello".islower())
print("TITLE".isupper())

Estos métodos son útiles para reglas sencillas, pero correos, contraseñas, fechas e identificadores suelen necesitar comprobaciones adicionales.

Formatear con f-strings

product = "Monitor"
price = 249.9
quantity = 2

print(f"{quantity} × {product}: ${price * quantity:.2f}")

Las f-strings admiten alineación:

name = "Keyboard"
price = 89.5

print(f"{name:<20} ${price:>8.2f}")

La guía de f-strings para números y moneda presenta porcentajes, fechas, padding y separadores.

Caracteres de escape y raw strings

print("Primera línea\nSegunda línea")
print("Columna 1\tColumna 2")
print("Ella dijo: \"Hola\"")

Una raw string conserva la mayoría de las barras:

windows_path = r"C:\Users\Ava\Documents"
pattern = r"\d{4}-\d{2}-\d{2}"

Unicode y codificación

Las strings almacenan Unicode:

greeting = "Hola — こんにちは — Hello 👋"
print(greeting)

Para guardar o transmitir texto, se convierte en bytes:

text = "café"
data = text.encode("utf-8")
restored = data.decode("utf-8")

print(data)
print(restored)

Utiliza una codificación explícita al abrir archivos:

with open("message.txt", "w", encoding="utf-8") as file:
    file.write(greeting)

El Unicode HOWTO oficial de Python explica caracteres, bytes y codificaciones.

Prefijos y sufijos

filename = "report_2026.csv"

print(filename.startswith("report_"))
print(filename.endswith(".csv"))

También existen removeprefix() y removesuffix():

url = "https://example.com"
host = url.removeprefix("https://")

Normalizar nombres

def normalize_name(raw_name):
    cleaned = " ".join(raw_name.strip().split())
    return cleaned.title()


names = [
    "  aLEX   johnSON ",
    "maria silva",
    "  CHRIS lee",
]

for name in names:
    print(normalize_name(name))

La función elimina espacios externos e internos repetidos antes de aplicar un formato.

Contar palabras

text = "Python es simple y Python es práctico."

cleaned = (
    text.casefold()
    .replace(",", "")
    .replace(".", "")
)

counts = {}

for word in cleaned.split():
    counts[word] = counts.get(word, 0) + 1

for word, count in counts.items():
    print(f"{word}: {count}")

Este ejemplo combina strings y diccionarios en Python.

Validación básica de contraseñas

def validate_password(password):
    problems = []

    if len(password) < 12:
        problems.append("usa al menos 12 caracteres")
    if not any(char.islower() for char in password):
        problems.append("añade una minúscula")
    if not any(char.isupper() for char in password):
        problems.append("añade una mayúscula")
    if not any(char.isdigit() for char in password):
        problems.append("añade un número")

    return problems

Estas reglas son educativas, no un sistema completo de autenticación. Las aplicaciones reales deben utilizar hashing seguro y bibliotecas establecidas.

Errores frecuentes

  • Intentar modificar un carácter directamente.
  • Olvidar asignar el resultado de un método.
  • Concatenar repetidamente dentro de bucles grandes.
  • Comparar entrada sin limpiar espacios.
  • Confundir strings con bytes.
  • Abrir archivos sin codificación explícita.
  • Crear parsers manuales cuando existe una biblioteca estándar.

Conclusión

Las strings son secuencias inmutables con herramientas para slicing, búsqueda, reemplazo, división, unión, validación, formato y Unicode. Practica limpiando nombres, procesando líneas, contando palabras y generando informes: esas tareas reúnen los patrones más utilizados en proyectos reales.

Compartilhe:

Facebook
WhatsApp
Twitter
LinkedIn

Contenido del artículo

    Artículos relacionados

    notebook com código saindo da tela
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    Variables: asignación, tipos y alcance en Python

    Aprende variables en Python: asignación, nombres, tipos, conversiones, referencias, mutabilidad, alcance, constantes, None y errores frecuentes.

    Ler mais

    Tempo de leitura: 4 minutos
    12/07/2026
    Diferença entre operadores is e == em Python
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    == vs is en Python: igualdad vs identidad

    Entiende la diferencia entre == e is en Python, igualdad, identidad, None, interning, copias superficiales, deepcopy y objetos personalizados.

    Ler mais

    Tempo de leitura: 4 minutos
    12/07/2026
    Menu interativo no terminal criado com Python
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    Menú interactivo en terminal con Python

    Crea un menú interactivo en Python con while, funciones, diccionarios, validación, submenús, persistencia JSON y manejo seguro de errores.

    Ler mais

    Tempo de leitura: 4 minutos
    12/07/2026
    ícone de loop com o texto 'While' abaixo
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    while: repite acciones con condiciones en Python

    Aprende bucles while en Python con condiciones, validación, menús, break, continue, else, centinelas, reintentos y buenas prácticas.

    Ler mais

    Tempo de leitura: 5 minutos
    11/07/2026
    Imagem de um quadro negro com várias interrogações no lugar de lâmpadas, e uma lâmpada conectada no meio
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    if, elif y else: lógica condicional en Python

    Aprende if, elif y else en Python con comparaciones, operadores lógicos, validación, rangos, menús, retornos tempranos y pruebas.

    Ler mais

    Tempo de leitura: 4 minutos
    11/07/2026
    Manipulação de dados JSON em Python
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    JSON en Python: leer, escribir y validar datos

    Aprende JSON en Python con load, loads, dump, dumps, archivos UTF-8, validación, APIs, Decimal, fechas y escritura segura.

    Ler mais

    Tempo de leitura: 4 minutos
    11/07/2026