Strings en Python: guía completa para principiantes

Publicado el: 11/07/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 = "[email protected]"

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

    Programador pensando enquanto analisa código em dois monitores
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    Cómo aprender programación desde cero: guía práctica

    Aprende programación desde cero con una ruta práctica de lógica, herramientas, ejercicios, proyectos, depuración, Git y hábitos de estudio.

    Ler mais

    Tempo de leitura: 6 minutos
    11/07/2026
    ícone de loop com o texto 'For' abaixo
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    Bucles for en Python: guía completa

    Aprende bucles for en Python con range, enumerate, zip, diccionarios, break, continue, bucles anidados y ejemplos prácticos.

    Ler mais

    Tempo de leitura: 4 minutos
    11/07/2026
    código Python de uma tupla com o texto separado formando a frase "O que são tuplas?"
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    Tuplas en Python: guía completa para principiantes

    Aprende tuplas en Python: creación, índices, slicing, inmutabilidad, desempaquetado, métodos, NamedTuple y ejemplos prácticos.

    Ler mais

    Tempo de leitura: 4 minutos
    11/07/2026
    símbolo de PI
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    Floats en Python: guía completa para principiantes

    Aprende floats en Python: operaciones, conversión, redondeo, precisión, math.isclose, Decimal, NaN, infinito y ejemplos prácticos.

    Ler mais

    Tempo de leitura: 4 minutos
    11/07/2026
    notebook mostrando tela a teclado
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    Entrada y salida en Python: guía completa

    Aprende entrada y salida en Python con input(), print(), conversiones, validación, f-strings, archivos y argumentos del terminal.

    Ler mais

    Tempo de leitura: 4 minutos
    11/07/2026
    Dicionário com o logo do Python em uma página e o texto 'Dicionário Python'
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    Diccionarios en Python: guía completa para principiantes

    Aprende diccionarios en Python: claves, valores, métodos, recorridos, estructuras anidadas, comprensiones, copias y ejemplos prácticos.

    Ler mais

    Tempo de leitura: 5 minutos
    11/07/2026